package com.bjpowernode.listener;

import com.bjpowernode.util.JDBCUtil;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class OneListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {

        //在这里创建通道，     [引入链接池，]    进行sql插入的速度提升。

        JDBCUtil util = new JDBCUtil();
        Map map = new HashMap<>();
        for(int i = 1;i<=20;i++){
            Connection con = util.getConnection();
            System.out.println("恭喜，恭喜，来世走一走 创建connecton " + con);

            map.put(con,true);// true 使用时，设置为false
            ServletContext application = servletContextEvent.getServletContext();

            application.setAttribute("key1",map);//放的都是地址
        }

    }// map被销毁。当服务器启动，使用全局作用域对象。保证con的存活。

    // 在http服务器关闭时，将全局作用域对象20个connection对象销毁
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        ServletContext servletContext = servletContextEvent.getServletContext();
        Map map = (Map) servletContext.getAttribute("key1");
        Iterator it = map.keySet().iterator();// 迭代器，简单排序
        while (it.hasNext()){
            Connection con = (Connection) it.next();
            if (con != null){
                System.out.println("兄弟们，我"+con+" 先行一步，20年之后，我还是一条好汉。");

            }
        }
    }
}
